'use strict';
const db = uniCloud.database()
const dbCmd = db.command
exports.main = async (event, context) => {
	//event为客户端上传的参数
	const {userId,articleId,comment,comment_id,reply_id = '',is_reply = false} = event
	console.log(event)
	
	// 获取用户信息
	let user =await db.collection('user').doc(userId).get()
	
	user = user.data[0]
	// 获取文章数据表
	const article = await db.collection('article').doc(articleId).get()
	const comments = article.data[0].comments
	// 评论对象
	let commentObj = {
		comment_id: generatedId(5), // 评论唯一标识
		comment_content:comment, // 评论内容
		create_time:Date.now(), // 评论时间
		is_reply, // 是否是回复的
		replyArr:[], // 回复列表
		author:{
			author_id:user._id,// 用户
			author_name:user.author_name, // 昵称
			avatar:user.avatar, // 头像
			professionnal:user.professionnal // 职业
		}
	}
	// 判断评论是否是回复或是新建
	if(!comment_id) {
		// 新建
		commentObj.replyArr = []
		commentObj = dbCmd.unshift(commentObj)
	} else {
		// 找到指定评论修改回复
		let commentAuthor = null
		let commentIndex = comments.findIndex(item => item.comment_id === comment_id)
		if(is_reply) {
			// 指定回复的人
			// 找到指定的人员名字
			commentAuthor = comments[commentIndex].replyArr.find(item => item.comment_id === reply_id).author.author_name
		} else{
			
			// 回复的人
			commentAuthor = comments.find(item => item.comment_id === comment_id).author.author_name
		}
		commentObj.to = commentAuthor
		commentObj = {
			[commentIndex]:{
				replyArr:dbCmd.unshift(commentObj)
			}
		}
	}

	await db.collection('article').doc(articleId).update({
		comments:commentObj
	})
	// 生成唯一id
	function generatedId(num) {
		return Number(Math.random().toString().substr(3,num) + Date.now()).toString(36)
	}
	
	//返回数据给客户端
	return {
		code:200,
		data:{
			msg:'添加数据成功'
		}
	}
};
